package com.example.demo.utils;

import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;
import org.springframework.util.DigestUtils;

import java.nio.charset.StandardCharsets;

/**
 * MD5工具类
 */

public class Md5Utils {
    /**
     * MD5加密盐
     */
    private static final String SALT = "mlhzInterView";

    /**
     * MD5加密  32位小写
     *
     * @param str
     * @return
     */
    public static String encode(String str) {
        if (StringUtils.isBlank(str)) {
            return null;
        }
        //在字符串基础上添加加密盐
        str = SALT + str;
        return DigestUtils.md5DigestAsHex(str.getBytes(StandardCharsets.UTF_8));
    }

    /**
     * MD5加密  32位小写
     * @param name
     * @param pwd
     * @return
     */
    public static String encodeToken(String name, String pwd) {
        if (StringUtils.isBlank(name) || StringUtils.isBlank(pwd)) {
            return null;
        }
        //在字符串基础上添加加密盐
        name = SALT + name + pwd + System.currentTimeMillis();
        return DigestUtils.md5DigestAsHex(name.getBytes(StandardCharsets.UTF_8));
    }

    /**
     * 任意类型 MD5加密
     *
     * @param object
     * @return
     */
    public static String encode(Object object) {
        return encode(String.valueOf(object));
    }
}
